package com.example.empleemanagesystem.controller;

import com.example.empleemanagesystem.entity.SalaryManage;
import com.example.empleemanagesystem.service.SalaryManageService;
import com.example.empleemanagesystem.vo.SalaryManageVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

// Spring RESTful风格的Web服务控制器，处理HTTP请求并返回JSON数据
@RestController
@RequestMapping("/salary") // 基础请求路径
public class SalaryManageController {

    @Autowired // 自动注入SalaryManageService实例
    private SalaryManageService salaryManageService;

    /**
     * 获取所有薪资记录
     *
     * @return 薪资管理对象列表
     */
    @GetMapping("/all")
    public List<SalaryManageVO> getAllSalaries() {
        // 调用salaryManageService的findAll方法获取所有薪资记录
        return salaryManageService.findAll();
    }

    /**
     * 根据员工姓名计算总薪资
     *
     * @param name 员工姓名
     * @return 包含员工姓名和总薪资的列表
     */
    @GetMapping("/calculateByName/{name}")
    public List<Object> calculateTotalSalaryByName(@PathVariable String name) {
        // 根据员工姓名获取薪资管理记录
        SalaryManage salaryManage = salaryManageService.getByName(name).orElse(null);
        if (salaryManage != null) {
            // 计算总薪资：基本工资 + 奖金 - 扣款
            Double totalSalary = salaryManage.getBaseSalary() + salaryManage.getBonus() - salaryManage.getDeduction();
            // 返回包含员工姓名和总薪资的列表
            return Arrays.asList(salaryManage.getName(), totalSalary);
        } else {
            // 如果未找到对应的薪资记录，返回null
            return null; // 或者抛出异常
        }
    }
}